package com.zzl.bonds.ticket.dto.feign;

import cfca.trustsign.common.vo.cs.SignInfoVO;
import com.zzl.apidoc.annotation.ApidocModel;
import com.zzl.apidoc.annotation.ApidocModelProperty;
import lombok.Data;

import javax.validation.constraints.NotBlank;
import java.io.Serializable;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

/**
 * 电子合同
 *
 * @author gull
 * @date 2022-06-23 11:06:50
 */
@Data
@ApidocModel
@SuppressWarnings("javadoc")
public class ContractAddDto implements Serializable {
    private static final long serialVersionUID = 1L;

    @ApidocModelProperty(description = "合同名称")
    private String contractName;
    @ApidocModelProperty(description = "合同编号，调用接口后回填的字段")
    private String contractNo;
    @NotBlank(message = "合同类别不能为空")
    @ApidocModelProperty(description = "* 合同类别\n" +
            " * 1 开单复核\n" +
            " * 2 开单签收\n" +
            " * 3 转单复核\n" +
            " * 4 转单签收\n" +
            " * 5 融资复核\n" +
            " * 6 融资协议签署")
    private Integer businessType;
    @ApidocModelProperty(description = "合同模板ID，调用接口后回填的字段")
    private String templateId;
    @ApidocModelProperty(description = "模板ID")
    private String cfcaTemplateId;
    @ApidocModelProperty(description = "模板类型买卖合同	MM供用电、水、气、热力合同	GY赠与合同	ZY借款合同	JK租赁合同	ZL融资租赁合同	RZZL承揽合同	CL建设工程合同	JSGC运输合同	YS技术合同	JS保管合同	BG仓储合同	CC委托合同	WT行纪合同	XJ居间合同	JJ劳动合同	LD其他合同	QT")
    private String contractType;
    @ApidocModelProperty(description = "印章id")
    private String sealId;
    @ApidocModelProperty(description = "安心签存储的印章id")
    private String cfcaSealId;
    @ApidocModelProperty(description = "签名域的标签值,客户平台默认签署域为：Signature_plat")
    private String signLocation;
    @ApidocModelProperty(description = "文本域信息：Map<String, String>，key为合同模板文本域的标签值，value为往文本域填入的值")
    private String textvalueinfo;


    @ApidocModelProperty(description = "合同状态：未完成	0已完成	1已拒绝	2正在签署	3锁定待签	4（用户用本地证书签署时使用，本项目用不到）已过期	9")
    private Integer contractStatus;
    @ApidocModelProperty(description = "创建方式，1 合同模板创建 2 上传合同创建")
    private Integer createMode;
    @ApidocModelProperty(description = "签约人信息")
    private List<SignInfoVO> signInfoVOList;
    @ApidocModelProperty(description = "文本域，合同模板的填充值")
    private Map<String, String> fieldMap = new HashMap<>();
    @ApidocModelProperty(description = "合同过期时间，默认30天，1年封顶，过期后不能进行签署。格式：yyyyMMdd")
    private String expiredDate;
    @ApidocModelProperty(description = "是否填写合同编号，0：不填写；1：填写；默认为0如果需要把合同编号填写到合同模板里面，需要保证合同模板里面有一个文本域，key值为：contractNo")
    private Integer isFillinContractNo;
    @ApidocModelProperty(description = "签署人名称，如Signature_plat;Signature1")
    private String signName;
    @ApidocModelProperty(description = "合同摘要")
    private String contractSummary;
    @ApidocModelProperty(description = "是否代签")
    private Integer isSign;

}
